The present invention relates to transmission of packets, and more particularly, to adaptive selective retransmission of such packets.
In a packet switched network, a message to be sent may be divided into blocks, or data packets, of fixed or variable length. The packets may then be sent individually over the network through multiple locations and reassembled at a final location before being delivered to a user at a receiving end. To ensure proper transmission and re-assembly of the blocks of data at the receiving end, various control data, such as sequence and verification information, is typically appended to each packet in the form of a packet header. At the receiving end, the packets are then reassembled and transmitted to an end user in a format compatible with the user""s equipment.
A variety of packet switching protocols are available, and these protocols range in degree of efficiency and reliability. Transmission Control Protocol (TCP) is a reliable connection-oriented protocol for the Internet, which includes intelligence necessary to confirm successful transmission between sending and receiving ends in the network. According to TCP, each packet is marked in its header with a sequence number to allow the receiving end to properly reassemble the packets into the original message. The receiving end is then typically configured to acknowledge receipt of packets and expressly request the sending end to retransmit any lost packets.
In the Internet, loss of entire packets has been found to occur at a rate of over 20% when the network is very congested. The packet loss typically occurs one packet at a time. However, at times, multiple sequential packets in a row may be lost. In either case, a connection-oriented protocol such as TCP may introduce delay into packet transmission and degrade overall throughput, due to its need to request retransmission of these lost packets. Therefore, a need exists for an improved system of responding to and correcting packet loss errors with minimum delay.
In one aspect, the present invention describes a method for selectively retransmitting packets. The method includes categorizing groups of packets in an order of importance. The order of importance is based on a scope of adverse impact that a loss of a particular group has on a quality of reconstructed original information. The method also includes selecting a subset of the groups of packets to be retransmitted. The selection is based on network condition parameters. The method further includes requesting retransmission of the subset of the groups of packets when a buffer occupancy condition is met.
In another aspect, a system for selectively retransmitting packets is described. The system includes a categorizer, a subset selector, and a buffer occupancy determining element. The categorizer receives groups of packets, and sorts the groups of packets in an order of importance. The subset selector receives each group of packets sorted in the order of importance, and determines whether a particular group is sufficiently important to be retransmitted. The buffer occupancy determining element generates a request to retransmit the particular group determined to be sufficiently important when buffer occupancy is greater than a threshold value.